
#ifndef __NEW_H__
# define __NEW_H__

# include <stdarg.h>

# include "object.h"
# include "class.h"

Object* new(Class const* cls, ...);
Object* va_new(Class const* cls, va_list* args);
void delete(Object* obj);
Object* incref(Object* obj);
void decref(Object* obj);
void __delete_all(int dummy, ...);
#define delete_all(...) __delete_all(42, __VA_ARGS__, NULL)
void clean_all();

#endif /* !__NEW_H__ */

